1. Field of the Invention
The present invention relates generally to a data association apparatus for transmitting data among a plurality of servers, and, more particularly, to a data association apparatus for transferring information about an operation on a database, which has been executed by one transmission server, to a plurality of reception servers.
2. Description of the Related Art
Conventionally, a plurality of servers perform mutually associated data processing on a plurality of databases, such as backup processing, information system processing and batch processing.
The backup processing is executed, for example, for an on-line trading system in a bank. That is, in systems whose stopping services would cause significant social influences, such as a bank on-line system, a backup computer center (backup center) may be built at site remote from the main computer center, in case a computer center (main center) having a regular database for everyday use is downed due to a natural disaster, terrorism or the like. The backup computer center is provided with a backup database having the same contents as the regular database. In the system, every time the server in the main center updates the regular database, the updated contents are transmitted to the server in the backup center. The server in the backup center (which has the same capability as the server in the main center) renews the backup database in accordance with the transmitted updated contents to make the contents of the backup database consistent with those of the regular database. As the consistency of the contents of both databases is maintained, if the main center is downed, the backup center can take over the processing that has been performed by the main center.
The information system processing is executed to collectively manage the results of operations executed in the main business works. The results of operations executed in the main business works are important information for the company activities. Normally, a company builds such information into an information system and positions it as the company""s strategic information system (SIS). In this respect, a database for information system is prepared in addition to the databases for the main business works. When server manipulates data for a main business work, the manipulation contents are collectively transmitted to the other server after the work is completed. The other server updates the database for information system by batch processing in accordance with the received manipulation contents. Since the results of a process executed by a main business work concentrate on the database for information system, the results can be managed collectively in the database for information system.
The batch processing is a process which is executed based on the results of the operations that have been carried out by the main business works. In a banking system, for instance, a telephone contact may be made to customers who had made large deposits in deposit and exchange business in the same day, or direct mails may be sent to such customers. Such works are premised on the process of preparing a list of customers who have made more than a certain deposit based on the results of the depositing business in the same day. This list making is executed as a batch process that is performed at the end of the business works in the day. When data of the main business works is manipulated by one server, therefore, the contents of this manipulation are collectively sent to the other server after all the business works are completed. The other server carries out the batch process in accordance with the received manipulation contents.
The procedures for associating data among a plurality of servers in this manner are classified into the following four groups depending on the system in which those servers are built and on the units of data exchanged among the servers.
First, a plurality of servers may be built up on the same computer system and all the records of data are transmitted collectively. In this case, a file which cannot be shared by servers is used in data transmission. More specifically, a transmission server opens such a file, writes all the records of data to be sent into the file, and temporarily closes the file after the writing of the data is completed. Next, a reception server opens this file and reads the stored data.
Second, a plurality of servers may be built up on different computer systems and all the records of data are transmitted collectively. In this case too, a file which cannot be shared by servers is used in data transmission. That is, a transmission server opens such a file, writes all the records of data to be sent into the file, and temporarily closes the file after the writing of the data is completed. This file is transmitted to a reception server by communications means. Upon reception of this file, the reception server opens the file and reads the stored data.
Third, a plurality of servers may be built up on the same computer system and data are transmitted record by record. In this case, a file or memory which can be shared by servers is used in data transmission. More specifically, a transmission server locks such a file or memory, writes one record of data to be transmitted in the file or memory, and then unlocks the file or memory. Next, a reception server locks this file or memory, reads one record of data stored therein, and then unlocks the file or memory. This data writing and reading are repeated until all the records are transmitted.
Fourth, a plurality of servers may be built up on different computer systems and data are transmitted record by record. In this case, a transmission server transmits data to be sent, record by record. A reception server receives the transmitted data record by record. This data writing and reading are repeated until all the records are transmitted.
In any case, the transmission server can send data only to one reception server. That is, the transmission server sends data only once. The transmission server should therefore make this single data transmission at the timing that the reception server could receive the data properly. By the way, there are multifarious types of data requested by reception servers. For example, one server may request the prompt transmission of data while another server may allow for a certain delay and may thus request one data transmission per day in order to suppress the number of processes. Accordingly, the transmission server cannot match the transmission timing with the timings requested by all the reception servers, and can synchronize the transmission timing only with the reception timing of only one reception server. The transmission server cannot therefore send data to a plurality of reception servers.
If a transmission server can output data multiple times simultaneously or in a time-shared manner, the data can be theoretically transmitted to a plurality of reception servers. This system however requires that every time a reception server is changed, the programs or system definitions in the transmission server should be altered. What is more, the burden on the transmission server is inevitably increased. Since the conventional data associating procedures are based on a fixed one-to-one association as explained above, the data flow is not smooth and cannot meet the multifarious requests by a plurality of reception servers. This is the first problem of the prior art.
The first and second procedures described above do not allow the reception server to be operated until the writing of all the records is completed, and cannot ensure parallel running of both transmission and reception servers. The first and second procedures are not therefore designed for the process that is requested immediately. By way of contrast, the third and fourth procedures described above can permit the parallel operation of both servers, but the reception server should be running while the transmission server is sending data. In other words, the transmitted data will be lost unless the reception server is running. Since the conventional associating procedures cannot allow for independent operations of the transmission server and reception server. This is the second problem of the prior art.
As the second and fourth procedures described above use communications means for data association, data itself may be lost during the transmission due to some accidental disconnection of the communications line or some other reasons. That is, it is difficult to guarantee the data reception on the reception server side. This is the third problem of the prior art.
Accordingly, it is a primary object of the present invention to provide an interserver data association apparatus which is designed to overcome the first conventional problem and which permits data association with respect to a plurality of reception servers based on data transmitted from one transmission server.
It is another object of the present invention to provide an interserver data association apparatus which overcomes the second and third conventional problems and which can maintain the independent operation of a reception server from that of a transmitting server and can prevent data from being lost.
To achieve the first object, according to the present invention, there is provided an interserver data association apparatus for transmitting contents of manipulation of a database in a transmission server to a plurality of reception servers, which comprises reception means for receiving data about the manipulation of the database sent from the transmission server; and distribution means for distributing the data, received by the reception means, to each reception server at a predetermined timing determined for each reception server.
The transmission server and reception servers in the present invention may be built on the same computer system or may be built on separate computer systems. That is, a server in the present invention can be grasped as an application program which performs one collective operation.
When individual servers are built on the same computer system, the interserver data association apparatus can also be built in this same computer system.
When individual servers are built on separate computer systems, however, the interserver data association apparatus may be built in the computer where the transmission server is located, or may be provided in a totally different system. In any case, the data exchange between computer systems is accomplished via communications means. To effect the data transmission via the communications means, the computer systems may be coupled directly or via communications lines.
The transmission server in the present invention has a function to manipulate a database, while each reception server may or may not have a function to manipulate a database. The reception servers need to be capable of doing some works based on the contents of the manipulation of a database sent from the transmission server. If a reception server has a database, this database may be processed by the function of the reception server to have the same contents as the database on the sender side so that it can be used as a backup database. Alternatively, the database of the reception server may be processed by the function of the reception server to have a different data structure from that of the database on the sender side.
The xe2x80x9cmanipulation of a databasexe2x80x9d in this invention includes events such as reference to, correction of, deletion of or addition to data stored in the database. Of course the database manipulation may include only some of those events.
The xe2x80x9cdata about the manipulation of a databasexe2x80x9d in the present invention is the information that specifies a transaction which has manipulated the database, the information that specifies a resource (data) in the database which has been manipulated, the type of an event (manipulation) of the database, the contents of data after the database manipulation, and so forth. This data may of course include only some of the mentioned information.
The reception means receives the data sent from the transmission server.
At this time, the reception means may process the received data. For instance, a transaction which is executed by the transmission server may manipulate a plurality of databases. In this case, however, the data to be sent to the interserver data association apparatus should not necessarily be arranged in the order of transactions for each database. The reception server however may execute the processes in the transaction order, so that the reception means may collectively process the data about the manipulation of the databases sent from the transmission server, transaction by transaction executed by the transmission server. In this case, when receiving all the data about the individual transactions, the reception means can collectively transfer those data to the unit of the subsequent stage.
Some definitions which define the conditions to acquire data through this reception means (acquisition definition and mapping definition) may be prepared so that data is obtained according to such definitions. Likewise, some definitions which define the conditions to group data for each transaction in the reception means (acquisition definition and mapping definition) may be prepared so that data is obtained according to such definitions.
The distribution means sends the data, transferred from the reception means, to individual reception servers. In this respect, the distribution means may be provided with buffers in association with the individual reception servers to store data immediately before being sent to the respective reception servers. This structure can allow the data to be held until the actual transmission to the individual reception servers. The buffers may be constituted of a volatile memory or a non-volatile memory.
The distribution means transmits data to each reception server at a predetermined timing specified for each reception server. Accordingly, some definitions which define the trigger conditions to send data to the reception servers (acquisition definition and mapping definition) may be prepared so that data is transmitted according to such definitions.
Since the above-described structure alone permits data, sent from the transmission server, to be transferred directly to the reception servers, each reception server should perform filtering to discard data which is not needed by that reception server itself. Accordingly, identification means may be provided between the reception means and the distribution means to discriminate only the data requested by each reception server from among all the data received by the reception means.
One identification means of this type may be provided in association with the reception means to selectively distribute the data, requested by each reception server, to the buffers of the associated reception servers. Alternatively, the identification means may be provided for the buffer of each reception server to selectively extract the data, requested by each reception server, from the reception unit (storage section and group buffers).
To effect the identification, some definitions which define the conditions of data requested by each reception server (acquisition definition and mapping definition) may be prepared so that data is identified according to such definitions.
While the first object is achieved by the above-described structure, the second object can further be achieved by further providing the storage section comprising a non-volatile medium (hard disk, EPROM, flash memory or the like) which time-sequentially stores data about the manipulation of the databases.
This storage section allows the reception servers, connected to the interserver data association apparatus, to be operated independently. For instance, the reception servers can function even while the transmission server is not running. In other words, even if the transmission server were not running at the time of the distribution which is previously requested to the distribution means, the data that should be received by a reception server still remains in the storage section so that the reception server can receive the data later. Even if the interserver data association apparatus is powered off, the data still exists in the storage section, thus permitting the operation time of the interserver data association apparatus to be set as desired.
Further, even when the transmission server and reception servers are built on different computer systems and data is transmitted via communications means to each reception server from the interserver data association apparatus, the transmitted data remains in the storage section and will not be lost by the accidental disconnection of the communications line.
This storage section may be located anywhere in the interserver data association apparatus. For example, the storage section may be arranged in the data transfer path from the reception means to the distribution means, or may be located at the end of a monitor route branching from the data transfer path. The former arrangement can guarantee the consistency of the data to be transmitted actually and the data stored in the storage section. The latter arrangement eliminates the need to access to the storage section on the data transfer path from the reception means to the distribution means, thus suppressing a time lag caused by the data transfer time.
When the interserver data association apparatus is equipped with the identification means, the storage section may be provided before or after the identification means. In the former case, the data received by the reception means is stored directly in the storage section, and the identification means discriminates only the data requested by a reception server from among the data stored in the storage section. This arrangement allows the data sent from the transmission server to be stored directly in the storage section, so that if data the reception server requests is changed, new needed data can be obtained easily. Further, a buffer into which the data read from the storage section is transferred may be provided so that the identification means can acquire only the data requested by the reception server from among the data written in the buffer and transfer the acquired data to the distribution means. With this arrangement, even if there are multiple reception servers and the identification means executes the identification for each reception server, a single access to the storage section is sufficient (accesses to the buffers should equal the number of reception servers), thus reducing the total amount of time for the access to the non-volatile medium.
In the latter arrangement of the storage section which is provided at the subsequent stage of the identification means, the data processed by the identification means to contain what is requested by each reception server is stored in the storage section. In this case, the storage section is prepared for each of the buffers provided in the distribution means in association with the individual reception servers.
The present invention can be used for data association between the server in the main center and a server in the backup center for bank services or the like, data association between a main business server and an information server, data association between a main business server and a batch processing server, and so forth.
The data about the manipulation of databases transmitted from the transmission server is received by the reception means. The data received by the reception means is transferred to the distribution means. This distribution means has information about the timing of data transmission requested by each reception server. At the timing each reception server requests, therefore, the distribution means transfers the data sent from the reception means to the reception server. If there are multiple reception servers, the distribution means executes the distribution process for each reception server. Even if there are multiple reception servers, the transmission server should only send data once at any given timing and need not perform data transmission according to each reception server. Therefore, the interserver data association apparatus intervening between transmission and reception servers can ensure data association between one server and a plurality of servers.